﻿#define _CRT_SECURE_NO_WARNINGS
//&&:和
//||;与
//! ：逻辑取反运算符（改变单个表达式的真假）。

#include <stdio.h>
//int main()
//{
//	int flag = 0;
//	if (!flag)
//		printf("hehe\n");
//	return 0;
//}

//int main()
//{
//	int month = 0;
//	scanf("%d", &month);
//	//3-5月是春季
//	if (month >= 3 && month <= 5)
//	{
//		printf("春季\n");
//	}
//	return 0;
//}

//int main()
//{
//	int month = 0;
//	scanf("%d", &month);
//	//12 1 2月是冬季
//	if (month == 12 || month == 1 || month==2)
//	{
//		printf("冬季\n");
//	}
//	return 0;
//}
// 
//#include <stdio.h>
//int main()
//{
//	int num = 0;
//	scanf("%d/n", num);
//	printf
//	return 0;
//}

//练习:闰年的判断输入一个年份year，判断year是否是闺年
//闰年判断的规则:
//1.能被4整除并且不能被100整除是年
//2.能被400整除是闰年
//int main()
//{
//	int year = 0;
//	scanf("%d", &year);
//	if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
//		printf("是闰年\n");
//	else
//		printf("是平年\n");
//
//	return 0;
//}

//switch语句
//switch (expression) 
//{
//case value1: statement
//case value2: statement
//default: statement
//}
//根据表达式 expression 不同的值，执⾏相应的 case 分⽀。
//如果找不到对应的值，就执⾏ default 分⽀。

//int main()
//{
//	int n = 0;
//	scanf_s("%d", &n);
//	if (n % 3 == 0)
//		printf("整除，余数为零\n");
//	else if (n % 3 == 1)
//		printf("余数为1\n");
//	else if (n % 3 == 2)
//		printf("余数为2\n");
//	return 0;
//}

//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	switch (n % 3)
//	{
//	case 0:
//		printf("余数为0\n");
//		break;//易漏
//	case 1:
//		printf("余数为1\n");
//		break;
//	case 2:
//		printf("余数为2\n");
//		break;
//	}
//	return 0;
//}

//int main()
//{
//	int n =0;
//	scanf("%d", &n);
//	switch (n)
//	{
//	case 1:
//		printf("星期一");
//		break;
//	case 2:
//		printf("星期二");
//		break;
//	case 3:
//		printf("星期三");
//		break;
//	case 4:
//		printf("星期四");
//		break;
//	case 5:
//		printf("星期五");
//		break;
//	case 6:
//		printf("星期六");
//		break;
//	case 7:
//		printf("星期日");
//		break;
//	}
//	return 0;
//}

//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	switch (n)
//	{
//	case 1:
//	case 2:
//	case 3:
//	case 4:
//	case 5:
//		printf("工作日\n");
//		break;
//	case 6:
//	case 7:
//		printf("休息日\n");
//		break;
//	default:
//		printf("输入错误,请输入1-7的数字");
//		break;
//	}
//	return 0;
//}

//循环语句（三种）
//while循环--跟if类似可一起记忆
//if(表达式)
//    语句;
//while (表达式)
//	 { 语句};//如果循环体想包含更多的语句，可以加上⼤括号

//代码1
//#include <stdio.h>
//int main()
//{
//	if (1)
//		printf("hehe\n"); //if后边条件满⾜，打印⼀次hehe
//	return 0;
//}

//代码2
//#include <stdio.h>
//int main()
//{
//	while (1)
//		printf("hehe\n"); //while后边的条件满⾜，死循环的打印hehe
//	return 0;
//}

//int main()
//{
//	int i = 1;
//	while (i <= 100)
//	{
//		printf("%d\n", i);
//		i++;
//	}
//	return 0;
//}

//int main()
//{
//	int i = 1;
//	while (i <= 3,	i++)
//	{
//		printf("%d\n", i);//-->停不下来的东西
//	
//	}
//	return 0;
//}

//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	while (n!=0)
//	{
//		printf("%d", n % 10);
//		n = n / 10;
//	}
//	return 0;
//}

// for (表达式1; 表达式2; 表达式3）
//		语句；//如果循环体想包含更多的语句，可以加上⼤括号
//
//表达式1 ⽤于循环变量的初始化
//表达式2 ⽤于循环结束条件的判断
//表达式3 ⽤于循环变量的调整

//练习：在屏幕上打印1~10的值
//int main()
//{
//	int n = 0;
//	for (n=1;n<=10;n++)
//		{
//		printf("%d\n", n);
//		}
//	return 0;
//}

//计算1~100之间3的倍数的数字之和
//int main()
//{
//	int i = 0;
//	int sum = 0;
//	for (i = 1; i <= 100; i++)
//	{
//		if (i % 3 == 0)
//		{
//			sum = sum + i;
//		}
//	printf("%d\n", sum);
//	}
//	return 0;
//}

//tip2:
//int main()
//{
//	int i = 0;
//	int sum = 0;
//	for (i = 3; i <= 100; i=i+3)
//	{
//		
//			sum = sum + i;
//		
//	}
//	printf("%d\n", sum);
//	return 0;
//}

//do while循环
//int main()
//{
//	int i= 1;
//	do
//	{
//		printf("%d\n", i);
//		i++;
//	} while (i <= 10);
//	return 0;
//}

//输⼊⼀个正整数，计算这个整数是⼏位数？
//例如：
//输⼊：1234 输出：4
//输⼊：12 输出：2

//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int count = 0;
//	do
//	{
//		count = count + 1;
//
//		n = n / 10;
//	} while (n);//n=0时停止循环
//	printf("%d\n", count);
//	return 0;
//}


//break：终止循环
//#include <stdio.h>
//int main()
//{
//	int i = 1;
//	while (i <= 10)
//	{
//		if (i == 5)
//			break;//当i等于5后，就执⾏break，循环就终⽌了
//		printf("%d ", i);//1234
//		i = i + 1;
//	}
//	return 0;
//}

//continue：跳过本次循环后面的代码
//#include <stdio.h>
//int main()
//{
//	int i = 1;
//	while (i <= 10)
//	{
//		if (i == 5)
//			continue;
//		//当i等于5后，就执⾏continue，直接跳过continue的代码，去循环的判断的地⽅
//		//因为这⾥跳过了i = i+1，所以i⼀直为5，程序陷⼊和死循环
//		printf("%d ", i);//1234_
//		i = i + 1;
//	}
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	int i = 1;
//	while (i <= 10)
//	{
//		i = i + 1;
//		if (i == 5)
//			continue;
//		//当i等于5后，就执⾏continue，直接跳过continue的代码，去循环的判断的地⽅
//		//因为i++在continue前面,i=5虽然不能printf,
//		////但是它还是会赋给i继续运行下一次的运行
//		printf("%d ", i);//2-11没有5
//	}
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	int i = 1;
//	for (i = 1; i <= 10; i++)
//	{
//		if (i == 5)
//			break;
//		printf("%d ", i);//1234//因为break结束后面所有循环
//	}
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	int i = 1;
//	for (i = 1; i <= 10; i++)
//	{
//		if (i == 5)
//			continue;//这⾥continue跳过了后边的打印，来到了i++的调整部分
//		printf("%d ", i);//1-10没有5
//	}
//	return 0;
//}//continue跳过本次循环的代码块

//找出100~200之间的素数，并打印在屏幕上
//注:素数又称质数，只能被1和本身整除的数字。

//思路：先打印出100-200
//
//int main()
//{
//	int n = 0;
//	int count = 0;
//	for (n = 100; n <= 200; n++)
//	{
//		//判断n是否是素数
//		//使用2～i-1之间的数字去试除i
//		//如果i被整除了，i就不是素数
//		//如果2～i-1之间没有数字可以整除i，i就是素数
//		int i = 0;
//		int flag = 1;//假设素数时为1
//		for (i = 2; i < n; i++)//
//		{
//			if (n % i == 0)
//			{
//				flag = 0;//非素数时flag=0,注意这里用=是赋值0给flag
//				break;
//			}
//
//		}
//
//		if (flag == 1)
//		{
//			count++;
//			printf("%d ", n);
//		}
//	}
//	printf("\n count =%d\n", count);
//	return 0;
//}


//简化版求100-200的素数
//#include <math.h>
////sqrt 是库函数，是用计算开平方法的，它的使用需要包含头文件math.h
//int main()
//{
//	int n = 0;
//	int count = 0;
//	for (n = 101; n <= 200; n+=2)
//	{
//		//判断n是否是素数
//		//使用2～i-1之间的数字去试除i
//		//如果i被整除了，i就不是素数
//		//如果2～i-1之间没有数字可以整除i，i就是素数
//		int i = 0;
//		int flag = 1;//假设素数时为1
//		for (i = 2; i <=sqrt(n); i++)//从原来的要试除2-99变成 试除2-10
//		{
//			if (n % i == 0)
//			{
//				flag = 0;//非素数时flag=0,注意这里用=是赋值0给flag
//				break;
//			}
//
//		}
//
//		if (flag == 1)
//		{
//			count++;
//			printf("%d ", n);
//		}
//	}
//	printf("\n count =%d\n", count);
//	return 0;
//}

//int main()
//{
//	int i = 0;
//	//循环产⽣100~200的数字
//	for (i = 100; i <= 200; i++)
//	{
//		//判断i是否为素数
//		//循环产⽣2~i-1之间的数字
//		int j = 0;
//		int flag = 1;//假设i是素数
//		for (j = 2; j < i; j++)
//		{
//			if (i % j == 0)
//			{
//				flag = 0;
//				break;
//			}
//		}
//		if (flag == 1)
//			printf("%d ", i);
//	}
//	return 0;
//}

//go to 语句
//int main()
//{
//	printf("%s\n", "hehe");
//goto end; 
//	printf("%s\n", "haha");
//end:
//	printf("跳过haha的打印，直接来到这里\n");
//	return 0;
//}//goto end 直接跳到end语句    -->hehe  跳过haha的打印，直接来到这里

//int main()
//{
//again:
//	printf("haha\n");
//goto again;
//	return 0;
//}//死循环打印haha

//多重循环用goto语句跳出循环，一次性就可以跳出来

//据说智商140以上者称为天才，KiKi想知道他自己是不是天才，请帮他编程判断。
//输入一个整数表示一个人的智商，如果大于等于140，则表明他是一个天才，输出"Genius”。
//int main()
//{
//	int iq = 0;
//	scanf("%d", &iq);
//	if (iq >= 140)
//		printf("Genius");
//	return 0;
//}

//此做法未理解“多组输入”的含义，“多组输入”：指程序可以多次判断输入的数据，
//若要退出运行需要按三次CTRL+Z，若按上面这种代码运行只能判断一次程序就会自动退出

//#include<stdio.h>
//int main()
//{
//	int iq = 0;
//	while (scanf("%d", &iq)==1)//scanf函数正常读取返回1，CTRL+Z时scanf会返回EOF
//	{
//		if (iq >= 140)
//			printf("Genius\n");
//	}
//	return 0;
//}

//#include<stdio.h>
//int main()
//{
//	int iq = 0;
//	while (scanf("%d", &iq)!=EOF)//scanf函数正常读取返回1，CTRL+Z时scanf会返回EOF
//	{
//		if (iq >= 140)
//			printf("Genius\n");
//	}
//	return 0;
//}

//输⼊⼀个正整数，计算这个整数是⼏位数？
//例如：
//输⼊：1234 输出：4
//输⼊：12 输出：2
//#include <stdio.h>
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int cnt = 0;
//	do
//	{
//		cnt++;
//		n = n / 10;
//	} while (n);
//	printf("%d\n", cnt);
//	return 0;
//}

